/*
 * Copyright (c) 2024. hallele, Inc All rights reserved.
 */

package cn.hallele.ms.portalcenter.integration.action.dept;

import cn.hallele.infrastructure.metadata.io.Page;
import cn.hallele.mc.sdk.usercenter.common.enums.DeptStatusEnum;
import cn.hallele.mc.sdk.usercenter.dto.DeptDTO;
import cn.hallele.mc.sdk.usercenter.dto.DeptQueryDTO;
import cn.hallele.mc.sdk.usercenter.feign.DeptFeign;
import cn.hallele.ms.infrastructure.util.OutGoingUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * hallele_ms_portalcenter
 *
 * @author anle5
 * @since 2024/11/16 18:34
 */
@Slf4j
@Service
public class DeptIntegrationService {
    @Autowired
    private DeptFeign deptFeign;

    /**
     * 分页查询部门信息
     *
     * @param condition 查询条件
     * @return 部门信息
     */
    public Page<DeptDTO> findDeptList(DeptQueryDTO condition) {
        return OutGoingUtil.getData(deptFeign.findDeptList(condition));
    }

    /**
     * 查询单个部门信息
     *
     * @param condition 查询条件
     * @return 部门信息
     */
    public DeptDTO findDept(DeptQueryDTO condition) {
        return OutGoingUtil.getData(deptFeign.findDept(condition));
    }

    /**
     * 新增 部门
     *
     * @param deptDTO 部门
     */
    public void addDept(DeptDTO deptDTO) {
        OutGoingUtil.getData(deptFeign.addDept(deptDTO));
    }

    /**
     * 更新 部门
     *
     * @param deptDTO 部门
     */
    public void updateDept(DeptDTO deptDTO) {
        OutGoingUtil.getData(deptFeign.updateDept(deptDTO));
    }

    /**
     * 删除 部门
     *
     * @param id 要删除的dept id
     */
    public void deleteDept(Integer id) {
        OutGoingUtil.getData(deptFeign.deleteDept(id));
    }

    /**
     * 更新 部门 状态
     *
     * @param id     主键
     * @param status 状态
     */
    public void updateDeptStatus(Integer id, DeptStatusEnum status) {
        OutGoingUtil.getData(deptFeign.updateDeptStatus(id, status));
    }
}
